package com.rich.domain;

import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 购物车
 * @author zhang
 *
 */
public class Cart {
	private Map<String, Cartitem> itemMap = new LinkedHashMap<>();
	private Double totalPrice = 0.0;


	/**
	 * 获取所有购物项，供cart.jsp遍历
	 * @return
	 */
	public Collection<Cartitem> getCartitems(){
		return itemMap.values();
	}
	
	public Map<String, Cartitem> getItemMap() {
		return itemMap;
	}
	public void setItemMap(Map<String, Cartitem> itemMap) {
		this.itemMap = itemMap;
	}
	public Double getTotalPrice() {
		return totalPrice;
	}
	public void setTotalPrice(Double totalPrice) {
		this.totalPrice = totalPrice;
	}
	
	/**
	 * 添加购物项
	 * @param cartitem
	 */
	public void add2Cart(Cartitem newItem) {
		//获取商品pid
		String pid = newItem.getProduct().getPid();
		//判断购物车是否有该购物项
		if(itemMap.containsKey(pid)) {
			//有,修改数量：原数量+新加数量
			Cartitem oitem = itemMap.get(pid);
			oitem.setCount(oitem.getCount()+newItem.getCount());
			
		}else {
			itemMap.put(pid, newItem);
		}
		//修改总金额
		totalPrice += newItem.getSubtotal();
		
	}
	
	/**
	 * 从购物车中移除一个购物项
	 * @param pid
	 */
	public void removeFromCart(String pid) {
		//从购物车（map）移除购物项
		Cartitem item = itemMap.remove(pid);
		//修改总金额
		totalPrice -= item.getSubtotal();
	}
	
	/**
	 * 清空购物车
	 */
	public void clearCart() {
		//清空map
		itemMap.clear();
		
		//总金额改为0
		totalPrice = 0.0;
	}
}
